/*
  组件：
    BrowserRouter 
      最外层包裹，内部通过context方式给后代组件通信相关数据
        navigation 用来编程式导航（路由跳转）
        location 用户获取pathname（当前路由路径）

    Route
      path/element 判断path和pathname是否相等，加载显示对应的element（路由组件）

    Routes
      Route外面必须包裹Routes才能使用
    
    Link
      路由链接，需要点击后，才将地址切换到to

    Navigate
      重定向，一加载就会将地址切换到to

  hooks函数：
    useNavigate
      const navigate = useNavigate()
      navigate('/home')

      返回值是一个函数，调用函数完成路由跳转

    useRoutes
      将routes渲染成对应的Route组件，并返回组件列表

    useLocation
      const location = useLocation()

      返回值就是location对象
*/

import BrowserRouter from "./BrowserRouter";
import Link from "./Link";
import Routes from "./Routes";
import Route from "./Route";
import { useLocation, useNavigate, useRoutes } from "./hooks";

export { BrowserRouter, Link, Routes, Route, useLocation, useNavigate, useRoutes };
